{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow version: 2.0.0-alpha0\n"
     ]
    }
   ],
   "source": [
    "print('Tensorflow version: {}'.format(tf.__version__))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow import keras\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "fashion_mnist = keras.datasets.fashion_mnist\n",
    "\n",
    "(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_images.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_labels.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 28, 28)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_images.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 2, 1, ..., 8, 1, 5], dtype=uint8)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x2c02f9a3320>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(train_images[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
    "               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_images = train_images / 255.0\n",
    "\n",
    "test_images = test_images / 255.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential([\n",
    "    keras.layers.Flatten(input_shape=(28, 28)),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(10, activation='softmax')\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer='adam',\n",
    "              loss='sparse_categorical_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/40\n",
      "60000/60000 [==============================] - 4s 64us/sample - loss: 0.8691 - accuracy: 0.6781 - val_loss: 0.5663 - val_accuracy: 0.7837\n",
      "Epoch 2/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.6130 - accuracy: 0.7792 - val_loss: 0.4736 - val_accuracy: 0.8303\n",
      "Epoch 3/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.5761 - accuracy: 0.7982 - val_loss: 0.4677 - val_accuracy: 0.8343\n",
      "Epoch 4/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.5438 - accuracy: 0.8085 - val_loss: 0.4437 - val_accuracy: 0.8420\n",
      "Epoch 5/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.5285 - accuracy: 0.8148 - val_loss: 0.4179 - val_accuracy: 0.8525\n",
      "Epoch 6/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.5196 - accuracy: 0.8161 - val_loss: 0.4318 - val_accuracy: 0.8377\n",
      "Epoch 7/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.5067 - accuracy: 0.8231 - val_loss: 0.4265 - val_accuracy: 0.8491\n",
      "Epoch 8/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4925 - accuracy: 0.8276 - val_loss: 0.4117 - val_accuracy: 0.8473\n",
      "Epoch 9/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4899 - accuracy: 0.8285 - val_loss: 0.4134 - val_accuracy: 0.8538\n",
      "Epoch 10/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4840 - accuracy: 0.8299 - val_loss: 0.4153 - val_accuracy: 0.8544\n",
      "Epoch 11/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4789 - accuracy: 0.8331 - val_loss: 0.4038 - val_accuracy: 0.8530\n",
      "Epoch 12/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4724 - accuracy: 0.8343 - val_loss: 0.3987 - val_accuracy: 0.8604\n",
      "Epoch 13/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4734 - accuracy: 0.8349 - val_loss: 0.4140 - val_accuracy: 0.8556\n",
      "Epoch 14/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4679 - accuracy: 0.8386 - val_loss: 0.4026 - val_accuracy: 0.8575\n",
      "Epoch 15/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4640 - accuracy: 0.8378 - val_loss: 0.3948 - val_accuracy: 0.8618\n",
      "Epoch 16/40\n",
      "60000/60000 [==============================] - 4s 60us/sample - loss: 0.4599 - accuracy: 0.8397 - val_loss: 0.3944 - val_accuracy: 0.8625\n",
      "Epoch 17/40\n",
      "60000/60000 [==============================] - 4s 59us/sample - loss: 0.4536 - accuracy: 0.8408 - val_loss: 0.3946 - val_accuracy: 0.8635\n",
      "Epoch 18/40\n",
      "60000/60000 [==============================] - 4s 60us/sample - loss: 0.4495 - accuracy: 0.8429 - val_loss: 0.3920 - val_accuracy: 0.8585\n",
      "Epoch 19/40\n",
      "60000/60000 [==============================] - 4s 60us/sample - loss: 0.4512 - accuracy: 0.8434 - val_loss: 0.3855 - val_accuracy: 0.8659\n",
      "Epoch 20/40\n",
      "60000/60000 [==============================] - 4s 60us/sample - loss: 0.4451 - accuracy: 0.8434 - val_loss: 0.3925 - val_accuracy: 0.8673\n",
      "Epoch 21/40\n",
      "60000/60000 [==============================] - 4s 60us/sample - loss: 0.4501 - accuracy: 0.8429 - val_loss: 0.3940 - val_accuracy: 0.8543\n",
      "Epoch 22/40\n",
      "60000/60000 [==============================] - 4s 61us/sample - loss: 0.4437 - accuracy: 0.8453 - val_loss: 0.3912 - val_accuracy: 0.8635\n",
      "Epoch 23/40\n",
      "60000/60000 [==============================] - 4s 61us/sample - loss: 0.4422 - accuracy: 0.8453 - val_loss: 0.3876 - val_accuracy: 0.8611\n",
      "Epoch 24/40\n",
      "60000/60000 [==============================] - 4s 62us/sample - loss: 0.4391 - accuracy: 0.8471 - val_loss: 0.3832 - val_accuracy: 0.8639\n",
      "Epoch 25/40\n",
      "60000/60000 [==============================] - 4s 62us/sample - loss: 0.4392 - accuracy: 0.8461 - val_loss: 0.3828 - val_accuracy: 0.8659\n",
      "Epoch 26/40\n",
      "60000/60000 [==============================] - 4s 61us/sample - loss: 0.4328 - accuracy: 0.8453 - val_loss: 0.3801 - val_accuracy: 0.8654\n",
      "Epoch 27/40\n",
      "60000/60000 [==============================] - 4s 63us/sample - loss: 0.4326 - accuracy: 0.8471 - val_loss: 0.3802 - val_accuracy: 0.8643\n",
      "Epoch 28/40\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.4374 - accuracy: 0.8464 - val_loss: 0.3811 - val_accuracy: 0.8608\n",
      "Epoch 29/40\n",
      "60000/60000 [==============================] - 4s 63us/sample - loss: 0.4337 - accuracy: 0.8464 - val_loss: 0.3795 - val_accuracy: 0.8650\n",
      "Epoch 30/40\n",
      "60000/60000 [==============================] - 4s 63us/sample - loss: 0.4287 - accuracy: 0.8485 - val_loss: 0.3725 - val_accuracy: 0.8615\n",
      "Epoch 31/40\n",
      "60000/60000 [==============================] - 4s 64us/sample - loss: 0.4311 - accuracy: 0.8479 - val_loss: 0.3903 - val_accuracy: 0.8601\n",
      "Epoch 32/40\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.4293 - accuracy: 0.8487 - val_loss: 0.3768 - val_accuracy: 0.8677\n",
      "Epoch 33/40\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.4297 - accuracy: 0.8490 - val_loss: 0.3874 - val_accuracy: 0.8652\n",
      "Epoch 34/40\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.4271 - accuracy: 0.8508 - val_loss: 0.3819 - val_accuracy: 0.8668\n",
      "Epoch 35/40\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.4248 - accuracy: 0.8503 - val_loss: 0.3853 - val_accuracy: 0.8632\n",
      "Epoch 36/40\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.4260 - accuracy: 0.8496 - val_loss: 0.3766 - val_accuracy: 0.8675\n",
      "Epoch 37/40\n",
      "60000/60000 [==============================] - 4s 68us/sample - loss: 0.4185 - accuracy: 0.8518 - val_loss: 0.3856 - val_accuracy: 0.8675\n",
      "Epoch 38/40\n",
      "60000/60000 [==============================] - 4s 69us/sample - loss: 0.4244 - accuracy: 0.8522 - val_loss: 0.3857 - val_accuracy: 0.8639\n",
      "Epoch 39/40\n",
      "60000/60000 [==============================] - 4s 68us/sample - loss: 0.4132 - accuracy: 0.8534 - val_loss: 0.3805 - val_accuracy: 0.8634\n",
      "Epoch 40/40\n",
      "60000/60000 [==============================] - 4s 69us/sample - loss: 0.4202 - accuracy: 0.8509 - val_loss: 0.3813 - val_accuracy: 0.8648\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_images, \n",
    "                    train_labels, \n",
    "                    epochs=30, \n",
    "                    validation_data=(test_images, test_labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 0s 26us/sample - loss: 0.3813 - accuracy: 0.8648\n"
     ]
    }
   ],
   "source": [
    "test_loss, test_acc = model.evaluate(test_images, test_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2c04d54fe10>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXxU5dn/8c8VCFvZww7KoqAiUKgBtCpVW4FSBRWr4NJiLdalWqhYt0dLXZ62tuLyK9VS644CVZ6K1cJTH1GqRSTQsCsgiAQEAsouAsn9++OamBBCMgmTnMzk+369zmsyZ86cuXIg19znPvd9HQshICIiyS8t6gBERCQxlNBFRFKEErqISIpQQhcRSRFK6CIiKaJ2VB/cokWL0KlTp6g+XkQkKS1YsGBrCKFlSa9FltA7depEVlZWVB8vIpKUzGzdkV5Tl4uISIpQQhcRSRFK6CIiKSKyPnQRqZkOHDhATk4O+/btizqUaq1evXp06NCB9PT0uN+jhC4iVSonJ4dGjRrRqVMnzCzqcKqlEALbtm0jJyeHzp07x/0+dbmISJXat28fGRkZSualMDMyMjLKfRajhC4iVU7JvGwVOUbJl9DfeQduvx3y86OORESkWkm+hD5/PvzmN7BjR9SRiEiSatiwYdQhVIrkS+gZGf64bVu0cYiIVDPJl9BbtPDHrVujjUNEkl4IgVtuuYUePXrQs2dPpk6dCsCnn37KgAED6N27Nz169OBf//oXeXl5jBo16qttH3rooYijP1zyDVssSOhqoYskvzFjIDs7sfvs3RsefjiuTadPn052djaLFi1i69at9O3blwEDBvDCCy8waNAg7rzzTvLy8ti7dy/Z2dls2LCBpUuXArB9+/bExp0AyddCL+hyUQtdRI7SO++8w8iRI6lVqxatW7fmW9/6FvPnz6dv37489dRTjB8/niVLltCoUSO6dOnCmjVruPHGG5k5cyaNGzeOOvzDJG8LXQldJPnF2ZKuLCGEEtcPGDCAOXPm8Nprr3HllVdyyy238IMf/IBFixYxa9YsJk6cyLRp03jyySerOOLSJV8LvXFjqF1bXS4ictQGDBjA1KlTycvLIzc3lzlz5tCvXz/WrVtHq1atGD16NFdffTULFy5k69at5OfnM3z4cO69914WLlwYdfiHSb4Wupl3u6iFLiJH6cILL2Tu3Ll8/etfx8x44IEHaNOmDc888wy/+93vSE9Pp2HDhjz77LNs2LCBq666ivzYHJhf//rXEUd/ODvSKUdly8zMDBW+wUWPHnDCCfDyy4kNSkQq3YoVKzjppJOiDiMplHSszGxBCCGzpO2Tr8sF1EIXESlBcib0Fi2U0EVEiknOhJ6RoYuiIiLFJGdCb9HCE3pE/f8iItVR8ib0gwdh586oIxERqTaSM6FrtqiIyGGSM6GrnouIyGGSM6GrhS4iVaS02ukff/wxPXr0qMJoSpecCV31XEREDpN8U/9BXS4iKeSssw5fd8klcP31sHcvDBly+OujRvmydStcfPGhr731Vumfd+utt9KxY0euv/56AMaPH4+ZMWfOHD7//HMOHDjAfffdx7Bhw8r1e+zbt4/rrruOrKwsateuzYQJEzj77LNZtmwZV111Ffv37yc/P5+XX36Zdu3acckll5CTk0NeXh533XUXl156abk+ryTJmdCbNIFatdRCF5FyGzFiBGPGjPkqoU+bNo2ZM2cyduxYGjduzNatWzn11FMZOnRouW7UPHHiRACWLFnCBx98wMCBA1m5ciWPP/44P/vZz7j88svZv38/eXl5vP7667Rr147XXnsNgB0JuqVmcib0ggJdaqGLJL3SWtQNGpT+eosWZbfIi+vTpw9btmxh48aN5Obm0qxZM9q2bcvYsWOZM2cOaWlpbNiwgc2bN9OmTZu49/vOO+9w4403AnDiiSfSsWNHVq5cyWmnncb9999PTk4OF110EV27dqVnz56MGzeOW2+9lfPOO48zzzyzfL/EESRnHzqonouIVNjFF1/MSy+9xNSpUxkxYgSTJ08mNzeXBQsWkJ2dTevWrdm3b1+59nmkQoeXXXYZM2bMoH79+gwaNIg333yTbt26sWDBAnr27Mntt9/OPffck4hfK0lb6KB6LiJSYSNGjGD06NFs3bqVt99+m2nTptGqVSvS09OZPXs269atK/c+BwwYwOTJkznnnHNYuXIln3zyCSeccAJr1qyhS5cu3HTTTaxZs4bFixdz4okn0rx5c6644goaNmzI008/nZDfK7kT+qpVUUchIkno5JNPZteuXbRv3562bdty+eWXc/7555OZmUnv3r058cQTy73P66+/nmuvvZaePXtSu3Ztnn76aerWrcvUqVN5/vnnSU9Pp02b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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history['loss'], 'r', label='loss')\n",
    "plt.plot(history.epoch, history.history['val_loss'], 'b--', label='val_loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2c04d6e0a90>]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD6CAYAAACoCZCsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de5xVdb3/8deHQUBFriIRqKDiBbNMR8LUSg1F07SOKeT1lNlFrMyj6clSSftlJ/NUmoWmZJp4KZVTKGpqaoIyKCoXQUSTEZPhjoLCzHx+f3zWdm+GPcxiZs/sYdb7+Xisx957re9a+7sXw/ez1nd9L+buiIhI9nQqdwZERKQ8FABERDJKAUBEJKMUAEREMkoBQEQkoxQAREQyKlUAMLNRZjbPzBaY2cVFtu9iZo+Z2fNm9qKZHZusP9XMZhYs9Wa2f7Lt8eSYuW07lfaniYjI5lhT/QDMrAKYD4wEqoHpwBh3n1OQZjzwvLvfYGbDgMnuPrjBcfYD7nf33ZLPjwP/5e5VaTO74447+uDBg5tMJyIieTNmzFjq7v0aru+cYt/hwAJ3XwhgZhOBE4A5BWkc6JG87wksLnKcMcAdW5LphgYPHkxVVep4ISIigJn9q9j6NFVAA4FFBZ+rk3WFLgdOM7NqYDJwXpHjnMKmAeCWpPrnh2ZmKfIiIiIlkiYAFCuYG9YbjQEmuPsg4Fjgj2b2wbHN7BPAWnefVbDPqe6+H3BYspxe9MvNzjGzKjOrqqmpSZFdERFJI00AqAZ2Lvg8iE2reL4K3AXg7lOBbsCOBdtH0+Dq393fTF7XAH8iqpo24e7j3b3S3Sv79dukCktERJopTQCYDgw1syFm1oUozCc1SPMGcCSAme1DBICa5HMn4EvAxFxiM+tsZjsm77cBjgNmISIibabJh8DuXmtmY4EpQAVws7vPNrNxQJW7TwIuAG40s/OJ6qGzPN+86FNAde4hcqIrMCUp/CuAR4AbS/arRESkSU02A21PKisrXa2ARES2jJnNcPfKhuvVE1hEJKPS9AMQESm7KVPg7bfh+OOhd++2/e6lS+GZZ8AdKivhQx+KvEyfnk+zzz6w++5tm6+WUgAQ2Yx162D2bJg5MxZ3uP76cucqex57DI49FurrYZttYORI+NKXYPRo6NZt8/u+8w7cfz+8/HIEj+FF2xsWt349XHcdjBsHq1bFuvvvh89/Pgr/44/PpzWLPP3iFzCwYU+pdkrPAEQa8a1vwfjxUFcXn7t3h0MPhQcegFtugWnT4He/K28ec9xhzhx45BF46SX48Iej0AJ44glYsyaumvv0gf792/4KuqXWr4f/9//gs5+F++6Du+6ClSthyRLo2jWC8+DBUFsLzz4bV+vDhsEpp8CyZbBjQaP0z34WfvAD+PSno9BuzLp1cMABETiOOQYuuij+BvbYA3r1iu9fsCDS1tfDvffC7bfH+e/ZE1avhh49Gj9+W2rsGQDuvtUsBx54oIu0pn//233t2nh/223ul17qfs897gsWuNfV5dP9+Mfu4P7YY2XJ5kauucZ9wIDID7j36+e+//757Ycfnt+WWz7xifz22293v+su95kz3d95p/n5mDbN/Sc/af7+xTzwgPuSJZuur693X7gw/36vvdwrKvK/r1Mn97Fj8+nnzHFfscL9Zz9z798/0kyfXvw7Fy/Ov7/ySvfJk9Pnd8OGeK2rc99vP/cjj4y/kfr69MfIqatzf+UV97vvjteWIFpsblKmlr1Q35JFAUDSqK93X7o0/58xrTffdN9zT/cvfrHptGvXuu+6q/vHPuZeW7tl37N2rft7723ZPu7xu5591v2733X/yEfca2pi/fjx7qec4n7jje6vvbbpfq+95j51ahSmf/qT+//8j/uvf53fPnjwxsFhxAj3v/41fb5ef919zJjY96KLYt26de6//33zfmfOffe5d+7s/pWvbD5dfb37M8+4//d/u199tfvjj7uvWdN4+rVr3e+8M18o/+IXEeRratzPOy++c9q05ufb3X39+jjPH/pQnJdPftL9ssvcX3optq9Y4f7EE+6zZsXf3cqV8W+by/ctt7h3757/N/n5z1uWHwUA6VDWrnWfP9/9wQfjSj3na1/L/8cZOtT9qafSHa+6OtJ3755+nzvvjO/53e/S53vpUvfdd3fffnv3k0/OX8U2tc/VV7vvs098X9eu7iNHur/8cvrv3Zx33omr/7vucr/iCvfddovC1D2uQt9/v/h+q1a5X3xx5Gfbbd1/+MN8AZY7NwMGRN5XrdqyPE2a5L7NNnGnsqX7bonaWvePfjR/19Cpk/s3v5kPri21bp379dfHvznEOXZ3f/jhTe/KINa7uz/9dNzB3HSTe1VVHKclFABkq1JT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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history['accuracy'], 'r')\n",
    "plt.plot(history.epoch, history.history['val_accuracy'], 'b--')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential([\n",
    "    keras.layers.Flatten(input_shape=(28, 28)),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dropout(0.5),\n",
    "    keras.layers.Dense(10, activation='softmax')\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer='adam',\n",
    "              loss='sparse_categorical_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/30\n",
      "60000/60000 [==============================] - 5s 76us/sample - loss: 0.7910 - accuracy: 0.7030 - val_loss: 0.5087 - val_accuracy: 0.8017\n",
      "Epoch 2/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.5234 - accuracy: 0.8206 - val_loss: 0.4918 - val_accuracy: 0.8056\n",
      "Epoch 3/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.4671 - accuracy: 0.8413 - val_loss: 0.4154 - val_accuracy: 0.8478\n",
      "Epoch 4/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.4344 - accuracy: 0.8518 - val_loss: 0.4456 - val_accuracy: 0.8393\n",
      "Epoch 5/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.4190 - accuracy: 0.8580 - val_loss: 0.4077 - val_accuracy: 0.8555\n",
      "Epoch 6/30\n",
      "60000/60000 [==============================] - 4s 71us/sample - loss: 0.3984 - accuracy: 0.8636 - val_loss: 0.4015 - val_accuracy: 0.8590\n",
      "Epoch 7/30\n",
      "60000/60000 [==============================] - 4s 71us/sample - loss: 0.3885 - accuracy: 0.8682 - val_loss: 0.3892 - val_accuracy: 0.8594\n",
      "Epoch 8/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.3770 - accuracy: 0.8707 - val_loss: 0.3781 - val_accuracy: 0.8647\n",
      "Epoch 9/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.3672 - accuracy: 0.8733 - val_loss: 0.3768 - val_accuracy: 0.8632\n",
      "Epoch 10/30\n",
      "60000/60000 [==============================] - 4s 70us/sample - loss: 0.3585 - accuracy: 0.8762 - val_loss: 0.3779 - val_accuracy: 0.8680\n",
      "Epoch 11/30\n",
      "60000/60000 [==============================] - 4s 71us/sample - loss: 0.3577 - accuracy: 0.8784 - val_loss: 0.3702 - val_accuracy: 0.8677\n",
      "Epoch 12/30\n",
      "60000/60000 [==============================] - 4s 73us/sample - loss: 0.3519 - accuracy: 0.8801 - val_loss: 0.3779 - val_accuracy: 0.8698\n",
      "Epoch 13/30\n",
      "60000/60000 [==============================] - 4s 73us/sample - loss: 0.3452 - accuracy: 0.8814 - val_loss: 0.3750 - val_accuracy: 0.8672\n",
      "Epoch 14/30\n",
      "60000/60000 [==============================] - 4s 73us/sample - loss: 0.3447 - accuracy: 0.8816 - val_loss: 0.3555 - val_accuracy: 0.8765\n",
      "Epoch 15/30\n",
      "60000/60000 [==============================] - 4s 73us/sample - loss: 0.3377 - accuracy: 0.8835 - val_loss: 0.3700 - val_accuracy: 0.8689\n",
      "Epoch 16/30\n",
      "60000/60000 [==============================] - 4s 75us/sample - loss: 0.3329 - accuracy: 0.8854 - val_loss: 0.3612 - val_accuracy: 0.8712\n",
      "Epoch 17/30\n",
      "60000/60000 [==============================] - 4s 73us/sample - loss: 0.3316 - accuracy: 0.8835 - val_loss: 0.3708 - val_accuracy: 0.8726\n",
      "Epoch 18/30\n",
      "60000/60000 [==============================] - 4s 74us/sample - loss: 0.3262 - accuracy: 0.8880 - val_loss: 0.3746 - val_accuracy: 0.8711\n",
      "Epoch 19/30\n",
      "60000/60000 [==============================] - 5s 75us/sample - loss: 0.3236 - accuracy: 0.8873 - val_loss: 0.3695 - val_accuracy: 0.8732\n",
      "Epoch 20/30\n",
      "60000/60000 [==============================] - 4s 74us/sample - loss: 0.3247 - accuracy: 0.8887 - val_loss: 0.3818 - val_accuracy: 0.8640\n",
      "Epoch 21/30\n",
      "60000/60000 [==============================] - 5s 76us/sample - loss: 0.3214 - accuracy: 0.8905 - val_loss: 0.3695 - val_accuracy: 0.8711\n",
      "Epoch 22/30\n",
      "60000/60000 [==============================] - 5s 76us/sample - loss: 0.3208 - accuracy: 0.8899 - val_loss: 0.4441 - val_accuracy: 0.8596\n",
      "Epoch 23/30\n",
      "60000/60000 [==============================] - 5s 77us/sample - loss: 0.3134 - accuracy: 0.8895 - val_loss: 0.3726 - val_accuracy: 0.8706\n",
      "Epoch 24/30\n",
      "60000/60000 [==============================] - 5s 79us/sample - loss: 0.3075 - accuracy: 0.8939 - val_loss: 0.3624 - val_accuracy: 0.8759\n",
      "Epoch 25/30\n",
      "60000/60000 [==============================] - 5s 79us/sample - loss: 0.3122 - accuracy: 0.8919 - val_loss: 0.3891 - val_accuracy: 0.8626\n",
      "Epoch 26/30\n",
      "60000/60000 [==============================] - 5s 77us/sample - loss: 0.3072 - accuracy: 0.8945 - val_loss: 0.3586 - val_accuracy: 0.8754\n",
      "Epoch 27/30\n",
      "60000/60000 [==============================] - 5s 80us/sample - loss: 0.3031 - accuracy: 0.8951 - val_loss: 0.3775 - val_accuracy: 0.8705\n",
      "Epoch 28/30\n",
      "60000/60000 [==============================] - 5s 78us/sample - loss: 0.2995 - accuracy: 0.8968 - val_loss: 0.3614 - val_accuracy: 0.8760\n",
      "Epoch 29/30\n",
      "60000/60000 [==============================] - 5s 80us/sample - loss: 0.3008 - accuracy: 0.8966 - val_loss: 0.3575 - val_accuracy: 0.8802\n",
      "Epoch 30/30\n",
      "60000/60000 [==============================] - 5s 79us/sample - loss: 0.2970 - accuracy: 0.8960 - val_loss: 0.4024 - val_accuracy: 0.8654\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_images, \n",
    "                    train_labels, \n",
    "                    epochs=30, \n",
    "                    validation_data=(test_images, test_labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 0s 29us/sample - loss: 0.4024 - accuracy: 0.8654\n"
     ]
    }
   ],
   "source": [
    "test_loss, test_acc = model.evaluate(test_images, test_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2c04f4222b0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAD4CAYAAAATpHZ6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXxU5dXA8d/Jwg4CEiAQIKAgIghopCoVxRVc8FWpBVdsXRBxwUpxq7VaXrdWbZXqi/sO1BUVsVqlFBUlIIuAICBIZAsIiATIdt4/TmJCyDJJZjLMnfP9fO4nM3ebczPJmWee+yyiqjjnnAuGhGgH4JxzLnw8qTvnXIB4UnfOuQDxpO6ccwHiSd055wIkKVov3KpVK01PT4/WyzvnXEyaO3fuZlVNqWh71JJ6eno6mZmZ0Xp555yLSSKyprLtXv3inHMBElJSF5FBIrJMRFaIyM3lbO8oIh+LyJcislBETg9/qM4556pSZVIXkURgAjAY6AEMF5EeZXa7HZiiqn2BYcA/wh2oc865qoVSp94PWKGqqwBEZBJwNrCk1D4KNCt6fACwLpxBOueCIy8vj6ysLHbv3h3tUPZrDRo0IC0tjeTk5GodF0pSbw+sLfU8C/hFmX3uBP4lItcCjYGTqxWFcy5uZGVl0bRpU9LT0xGRaIezX1JVtmzZQlZWFp07d67WsaHUqZf3Wy87Cthw4FlVTQNOB14QkX3OLSJXikimiGRmZ2dXK1DnXDDs3r2bAw880BN6JUSEAw88sEbfZkJJ6llAh1LP09i3euW3wBQAVf0MaAC0KnsiVZ2oqhmqmpGSUmEzS+dcwHlCr1pNf0ehJPU5QFcR6Swi9bAboVPL7PMdcFJRIIdiST0yRfFZs+CWW8CHDHbOuX1UmdRVNR8YDbwPLMVauSwWkbtEZEjRbr8DrhCRBcArwAiN1EDtc+bAvffC1q0ROb1zLviaNGkS7RAiJqQepao6DZhWZt0dpR4vAfqHN7QKpKbaz/XroWXLOnlJ55yLFbHXo7RdO/u5fn1043DOxTxVZezYsfTs2ZNevXoxefJkANavX8+AAQPo06cPPXv25L///S8FBQWMGDHi530feuihKEdfvqiN/VJjpUvqzrnYdsMNMH9+eM/Zpw88/HBIu77++uvMnz+fBQsWsHnzZo466igGDBjAyy+/zGmnncZtt91GQUEBOTk5zJ8/n++//56vvvoKgG3btoU37jCJvZK6J3XnXJjMmjWL4cOHk5iYSJs2bTj++OOZM2cORx11FM888wx33nknixYtomnTpnTp0oVVq1Zx7bXXMn36dJo1a1b1C0RB7JXUmzSxxZO6c7EvxBJ1pFTUnmPAgAHMnDmTd999l4svvpixY8dyySWXsGDBAt5//30mTJjAlClTePrpp+s44qrFXkkdrLS+zkcicM7VzoABA5g8eTIFBQVkZ2czc+ZM+vXrx5o1a2jdujVXXHEFv/3tb5k3bx6bN2+msLCQ8847j7vvvpt58+ZFO/xyxV5JHSype0ndOVdL55xzDp999hm9e/dGRLj//vtp27Ytzz33HA888ADJyck0adKE559/nu+//57LLruMwsJCAO65554oR18+iVRz8qpkZGRojSfJGDYM5s6Fb74Jb1DOuYhbunQphx56aLTDiAnl/a5EZK6qZlR0TOxWv3hJ3Tnn9hG7SX3nTtixI9qROOfcfiV2kzp4ad0558qIzaTuvUqdc65csZnUvaTunHPl8qTunHMBEptJvXlzqF/fk7pzzpURm0ldxHuVOufqRGVjr69evZqePXvWYTRVi82kDt5W3TnnyhGbwwSAJfWlS6MdhXOulk44Yd91558Po0ZBTg6cfvq+20eMsGXzZhg6dO9tM2ZU/nrjxo2jU6dOjBo1CoA777wTEWHmzJls3bqVvLw8/vznP3P22WdX6zp2797N1VdfTWZmJklJSTz44IMMHDiQxYsXc9lll5Gbm0thYSGvvfYa7dq14/zzzycrK4uCggL+8Ic/8Otf/7par1eR2E7qH30U7SicczFm2LBh3HDDDT8n9SlTpjB9+nTGjBlDs2bN2Lx5M0cffTRDhgyp1uTPEyZMAGDRokV8/fXXnHrqqSxfvpzHH3+c66+/ngsvvJDc3FwKCgqYNm0a7dq149133wVg+/btYbu+2E7q27bBrl3QsGG0o3HO1VBlJetGjSrf3qpV1SXzsvr27cumTZtYt24d2dnZtGjRgtTUVMaMGcPMmTNJSEjg+++/Z+PGjbRt2zbk886aNYtrr70WgO7du9OpUyeWL1/OMcccw/jx48nKyuLcc8+la9eu9OrVi5tuuolx48Zx5plnctxxx1XvIioR23XqABs2RDcO51zMGTp0KK++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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history['loss'], 'r', label='loss')\n",
    "plt.plot(history.epoch, history.history['val_loss'], 'b--', label='val_loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2c0504629b0>]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history['accuracy'], 'r')\n",
    "plt.plot(history.epoch, history.history['val_accuracy'], 'b--')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
